home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / programr / plpak1.zip / PLPAK1.CPP < prev    next >
C/C++ Source or Header  |  1994-05-05  |  4KB  |  159 lines

  1. //---------------------------------------------------------------------------
  2. // This program demonstrates the controls in the Plumber Custom Control Pack
  3. // 1.  To see just how easy it is to add and use these controls in your app,
  4. // look for the lines of code ending in or surrounded with the comments,
  5. // " <--- Added."
  6. //---------------------------------------------------------------------------
  7.  
  8. #include "StdAfx.h"
  9.  
  10. #include "resource.h"
  11. #include "resrc1.h"
  12.  
  13. #include <ctl3d.h>
  14.  
  15. #include "PlPak1.h"
  16.  
  17.  
  18. #include <CalenDlg.h>                            // <--- Added
  19. #include <EditDate.h>                            // <--- Added
  20.  
  21. CPlumberPack1 ThisApp;
  22.  
  23. BOOL CPlumberPack1::InitInstance()
  24. {
  25.     CCalenDlg::RegisterControl ();              // <--- Added
  26.  
  27.     m_pMainWnd = new CDlgWindow();        
  28.     
  29.     Ctl3dRegister(AfxGetInstanceHandle());
  30.     Ctl3dSubclassDlg(m_pMainWnd->m_hWnd, CTL3D_ALL);
  31.  
  32.     m_pMainWnd->Invalidate(TRUE);
  33.     m_pMainWnd->ShowWindow(SW_SHOW);
  34.  
  35.     SetClassWord(m_pMainWnd->m_hWnd,GCW_HICON, (WORD)LoadIcon(AFX_IDI_STD_FRAME));
  36.     
  37.     return TRUE;
  38. }
  39.  
  40. //---------------------------------------------------------------------------
  41. //---------------------------------------------------------------------------
  42. BEGIN_MESSAGE_MAP(CDlgWindow, CDialog)
  43.     //{{AFX_MSG_MAP(CDlgWindow)
  44.     ON_WM_CLOSE()
  45.     ON_COMMAND(ID_EXIT, OnExit)
  46.     ON_BN_CLICKED(IDC_CHECK1, OnWithCombo)
  47.     ON_BN_CLICKED(IDC_CHECK2, OnWithScroll)
  48.     ON_WM_CTLCOLOR()
  49.     ON_MESSAGE (PPC_DATECHANGED, OnDateChanged)
  50.     ON_COMMAND(ID_HELP, OnHelp)
  51.     //}}AFX_MSG_MAP
  52. END_MESSAGE_MAP()
  53.  
  54.  
  55. CDlgWindow::CDlgWindow()
  56. {
  57.     Create (MAIN_DLG_WINDOW);        // Create the Main Dialog Window
  58. }
  59.  
  60. void CDlgWindow::OnCancel ()
  61. {
  62.     return;                            // don't allow Esc key to close
  63. }
  64.  
  65. BOOL CDlgWindow::OnInitDialog()
  66. {
  67.     CString Dummy;
  68.  
  69.     CDialog::OnInitDialog();
  70.  
  71.     // <--- Added
  72.     ((CButton*) GetDlgItem (IDC_CHECK1))->SetCheck(1);
  73.     ((CButton*) GetDlgItem (IDC_CHECK2))->SetCheck(1);
  74.  
  75.     m_ComboDate.SubclassDlgItem (IDC_EDIT1, this);
  76.     m_ScrollDate.SubclassDlgItem (IDC_EDIT2, this);    
  77.     m_EditDate.SubclassDlgItem (IDC_EDIT3, this);
  78.     
  79.     m_ComboDate.AttachCombo ();
  80.     m_ComboDate.InitDate     (Dummy, MMDDYY);
  81.  
  82.     m_ScrollDate.AttachScroll ();
  83.     m_ScrollDate.InitDate     (Dummy, MMDDYY);
  84.  
  85.     m_EditDate.InitDate (Dummy, MMDDYY);
  86.     
  87.     OnDateChanged ((WPARAM) GetDlgItem (IDC_FULLCAL)->GetSafeHwnd(), 0);
  88.     // display current date
  89.     // ---> Added
  90.  
  91.     CenterWindow ();
  92.  
  93.     return TRUE;  // return TRUE  unless you set the focus to a control
  94. }
  95.  
  96. void CDlgWindow::OnClose()
  97. {
  98.     DestroyWindow();                // Destroy the dialog box window
  99.     delete this;                    // Delete 'this' dialog box object
  100.     Ctl3dUnregister(AfxGetInstanceHandle());
  101.     PostQuitMessage(0);                // End the application
  102. }
  103.  
  104.  
  105. HBRUSH CDlgWindow::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  106. {
  107.     const MSG    *msg=GetCurrentMessage();    
  108.  
  109.     CModalDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  110.     return Ctl3dCtlColorEx(msg->message, msg->wParam, msg->lParam); 
  111. }
  112.  
  113. void CDlgWindow::OnExit()
  114. {
  115.     OnClose();                        // Do the OnClose member function
  116. }
  117.  
  118.  
  119. void CDlgWindow::OnHelp()
  120. {
  121.     AfxGetApp()->WinHelp (0, HELP_CONTENTS);
  122. }
  123.  
  124. // <--- Added
  125. LRESULT CDlgWindow::OnDateChanged (WPARAM WParam, LPARAM LParam)
  126. {
  127.     if (WParam == (WPARAM) GetDlgItem (IDC_FULLCAL)->GetSafeHwnd())
  128.     {
  129.         CTime Date = ((CCalendar*) GetDlgItem (IDC_FULLCAL))->GetSelectedDate();
  130.          
  131.          int Day = Date.GetDay();
  132.      
  133.         CString Str = Date.Format ("%B, %d, %Y");
  134.         
  135.         GetDlgItem (IDC_DATETXT)->SetWindowText (Str);    
  136.     }
  137.     
  138.     return (LRESULT) 0;
  139. }
  140.  
  141. void CDlgWindow::OnWithCombo()
  142. {
  143.     if (((CButton*) GetDlgItem (IDC_CHECK1))->GetCheck())
  144.         m_ComboDate.AttachCombo();
  145.     else
  146.         m_ComboDate.DetachCombo();
  147. }
  148.  
  149. void CDlgWindow::OnWithScroll()
  150. {
  151.     if (((CButton*) GetDlgItem (IDC_CHECK2))->GetCheck())
  152.         m_ScrollDate.AttachScroll();
  153.     else
  154.         m_ScrollDate.DetachScroll();
  155. }
  156. // ---> Added
  157.  
  158.  
  159.